package com.larry.rabbitmq.first;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

/**
 * @author larry
 * @Title: larry-rabbitmq
 * @Package com.larry.rabbitmq.first
 * @Description: 生产者 -- 发消息
 * @date 6/28/214:08 PM
 */
public class Producer {

    //队列名称
    public static final String QUEUE_NAME = "hello";

    //发消息
    public static void main(String args[]) throws Exception{
         //创建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //工厂ip 连接rabbitmq的队列
        factory.setHost("47.93.55.0");
        //用户名
        factory.setUsername("guest");
        //密码
        factory.setPassword("guest");

        //创建连接
        Connection connection = factory.newConnection();
        //获取信道
        Channel channel = connection.createChannel();

        /**
         * 声明一个队列
         *  队列名称
         *  队列里面的消息是否持久化(磁盘) 默认在内存中
         *  该队列是否只供一个消费者消费(是否进行消息共享)
         *  是否自动删除,最后一个消费者断开连接后,该队列是否自动删除
         */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //发消息
        String message = "hello rabbitmq";

        /**
         * 发送一个消息
         *  发送到哪个交换机
         *  路由的key是哪个,本次是队列的名称
         *  其他参数
         *  消息
         */
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("消息发送完毕.....");
    }

}
